% Document style
\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}   % Czech
\usepackage[pdftex]{graphicx}  % images
\usepackage[czech]{babel}
\usepackage{enumerate}

% Begin
\begin{document}
\begin{titlepage}

% FI logo
\begin{center}
	\includegraphics[keepaspectratio]{filogo}
\end{center}

\vfill % vertical center
	\begin{center}
		\LARGE{Štatlař, API k datům o tajuplných místech v Brně}\\
		\bf{PB138 Moderní značkovací jazyky a jejich aplikace}
	\end{center}
\vfill

% Author
\noindent
Autor: {\bf Jan Javorek} ({\tt 208013 FI N-IN})\\
Datum: \today \\
Fakulta Informatiky\\
Masarykova Univerzita

\end{titlepage}

% TOC
%\tableofcontents
%\newpage

% Introduction
%\section{Úvod}
%Úvod.
%\newpage

% Contents
\section{Zadání projektu}
Jedná se o službu poskytující údaje geografického charakteru o různých podzemních prostorách v Brně. Služba je svou koncepcí inspirována u veřejných API na serveru Geonames.org. Základem architektury je datové úložiště (eXist), nad kterým by operuje server (Java) exportující služby pomocí API (REST). Dále by byla součástí projektu demonstrační mapová aplikace (zde připadá v úvahu forma statické webové stránky doplněné AJAXem).

\section{Můj úkol}
Měl jsem vytvořit demo aplikaci. Svůj úkol jsem pojal tak, aby bylo vidět, jak snadné je postavit s pomocí AJAXu a JavaScriptu aplikaci, která plně využívá API a přitom se vejde do jediného statického HTML souboru. Demo se skládá ze dvou stránek -- index.html a post.html. První slouží k projekci dat na Google mapu s využitím Google Maps API, JavaScriptu, AJAXu a frameworku jQuery linkovaného přímo ze serverů Google. Druhá aplikace potom umožňuje do databáze přidávat nové záznamy přes jednoduchý, ale přívětivý formulář a interaktivní mapu (kliknutí do mapy vyplní ve formuláři pole se souřadnicemi).

\section{Problémy při řešení}

Při implementaci jsem narazil na problém, který jsem si v začátku neuvědomil a jenž lze pojmenovat anglickým termínem \emph{same origin policy}. Z AJAXových požadavků se nedostanu nikam dál než na server, na němž běží demo aplikace. Jelikož pro nás bylo obtížné instalovat HTML stránky na tentýž stroj, kde nám jela aplikace s API (\emph{same origin policy} neumožňuje ani posílat požadavky na tentýž stroj s jiným portem), vyřešili jsme nakonec situaci narychlo pomocí dvou velmi krátkých PHP skriptů, jež fungují jako \emph{proxy} -- pouze přeposílají požadavky a HTTP hlavičky. Tyto skripty nejsou součástí řešení, jsou spíše malou berličkou, jak si ulehčit nasazení demo aplikace v našich podmínkách.

Při normální implementaci by programátor využil nějaké backendové technologie, např. Pythonu, Ruby, PHP, Javy či .NETu, aby si takovou proxy vytvořil a tím \emph{same origin policy} pro svou aplikaci vytvořil. Samozřejmě by taková proxy byla robustnější a na míru jeho aplikaci.

\section{Zpráva}

Jelikož jsem zprávu psal ve shonu (náš tým opustili v průběhu prací dva členové), nestihl jsem se důkladně seznámit s technologií DocBook. Protože bych však rád zachoval jistou kulturu písemného projevu, rozhodl jsem se tento dokument vysázet alespoň v systému \LaTeX. Za nedodržení stanovených podmínek se tímto omlouvám.

% End
\end{document}
